內部類別一般我們也可以統稱為巢狀類別(Nested Classes)。
顧名思義就是在一個類別或介面裡面,還會有一個類別。
其主要目的就是把類別群組在一起,而為什麼我們需要這樣做呢 ?
class Outer_Class{
//OuterClass members
class Inner_Class{
//InnerClass members
}
}
內部類別又分為主要四種類型,各個都有不同著眼的功能 :
以下針對一般與靜態內部類別去做差異比較。
宣告一個一般內部類別
class Outer_Class {
int num = 12;
class Inner_Class {
int num2 = 6;
}
}
Outer_Class Outer = new Outer_Class();
/*Outer_name.Inner_name Inner_objname = Outer_objname.new Inner_name()*/
Outer_Class.Inner_Class Inner = Outer.new Inner_Class();
public class Main {
public static void main(String[] args) {
Outer_Class Outer = new Outer_Class();
Outer_Class.Inner_Class Inner = Outer.new Inner_Class();
System.out.println(Outer.num * Inner.num2);
}
}
class Outer_Class {
int num = 12;
class Inner_Class {
public int Inner_Function(){
return num;
}
}
}
public class Main {
public static void main(String[] args) {
Outer_Class Outer = new Outer_Class();
Outer_Class.Inner_Class Inner = Outer.new Inner_Class();
System.out.println(Inner.Inner_Function());
}
}
內部類別可以存取外部類別的變數函數 ; 透過外部類別建立物件實體化內部類別
靜態內部類別與前面提到的靜態函數一樣,此處不用透過外部類別建立物件存取內部成員
class Outer_Class {
int num = 12;
static class Inner_Class {
int num2 = 6;
}
}
public class Main {
public static void main(String[] args) {
Outer_Class.Inner_Class Inner = new Outer_Class.Inner_Class();
System.out.println(Inner.num2);
}
}
以上內容若有誤或任何問題,煩請不吝嗇告知,謝謝您!!!